negotiator.boaframework.opponentmodel
Class IAMhagglerBayesianModel

java.lang.Object
  extended by negotiator.boaframework.OpponentModel
      extended by negotiator.boaframework.opponentmodel.IAMhagglerBayesianModel

public class IAMhagglerBayesianModel
extends OpponentModel

IAMhagglerModel by Colin Williams, adapted for the BOA framework. Tim Baarslag, Koen Hindriks, Mark Hendrikx, Alex Dirkzwager and Catholijn M. Jonker. Decoupling Negotiating Agents to Explore the Space of Negotiation Strategies

Author:
Colin Williams, Mark Hendrikx

Nested Class Summary
static class IAMhagglerBayesianModel.Extreme
           
 
Field Summary
 
Fields inherited from class negotiator.boaframework.OpponentModel
negotiationSession, opponentUtilitySpace
 
Constructor Summary
IAMhagglerBayesianModel()
           
 
Method Summary
 void cleanUp()
          Removes references to the objects used by the opponent model.
protected  void findMinMaxUtility()
          Find the minimum and maximum utilities of the bids in the utility space.
 EvaluatorHypothesis getBestHypothesis(int issue)
           
 double getBidEvaluation(Bid bid)
          Determines the utility of a bid according to the preference profile.
 double getExpectedUtility(Bid bid)
          Get the expected utility of a bid.
 double getExpectedWeight(int number)
          Get the expected weight of a particular issue.
 double getExtremeEvaluation(Evaluator evaluator, IAMhagglerBayesianModel.Extreme extreme)
           
 Hypothesis getHypothesis(int index)
           
 java.lang.String getName()
           
 double getNormalizedUtility(Bid bid)
          Get the normalised utility of a bid.
 double getNormalizedUtility(Bid bid, boolean debug)
          Get the normalised utility of a bid.
 UtilitySpace getOpponentUtilitySpace()
           
 double getWeight(Issue issue)
          Returns the weight of a particular issue in the domain.
 void init(NegotiationSession negotiationSession, java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          Initializes the model.
 void updateModel(Bid opponentBid, double time)
          Update the beliefs about the opponent, based on an observation.
 
Methods inherited from class negotiator.boaframework.OpponentModel
endSession, getIssueWeights, init, isCleared, loadData, setOpponentUtilitySpace, setOpponentUtilitySpace, storeData, updateModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IAMhagglerBayesianModel

public IAMhagglerBayesianModel()
Method Detail

init

public void init(NegotiationSession negotiationSession,
                 java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          throws java.lang.Exception
Description copied from class: OpponentModel
Initializes the model. The init method should always be called after creating an opponent model.

Overrides:
init in class OpponentModel
Parameters:
negotiationSession - reference to the state of the negotiation
Throws:
java.lang.Exception

getBidEvaluation

public double getBidEvaluation(Bid bid)
Description copied from class: OpponentModel
Determines the utility of a bid according to the preference profile.

Overrides:
getBidEvaluation in class OpponentModel
Parameters:
bid - of which the utility is calculated.
Returns:
Utility of the bid

getNormalizedUtility

public double getNormalizedUtility(Bid bid)
                            throws java.lang.Exception
Get the normalised utility of a bid.

Parameters:
bid - The bid to get the normalised utility of.
Returns:
the normalised utility of a bid.
Throws:
java.lang.Exception

getNormalizedUtility

public double getNormalizedUtility(Bid bid,
                                   boolean debug)
                            throws java.lang.Exception
Get the normalised utility of a bid.

Parameters:
bid - The bid to get the normalised utility of.
debug - Whether or not to output debugging information
Returns:
the normalised utility of a bid.
Throws:
java.lang.Exception

getExpectedUtility

public double getExpectedUtility(Bid bid)
                          throws java.lang.Exception
Get the expected utility of a bid.

Parameters:
bid - The bid to get the expected utility of.
Returns:
the expected utility of the bid.
Throws:
java.lang.Exception

updateModel

public void updateModel(Bid opponentBid,
                        double time)
Update the beliefs about the opponent, based on an observation.

Specified by:
updateModel in class OpponentModel
Parameters:
opponentBid - The opponent's bid that was observed.
time - at which the bid was offered.
Throws:
java.lang.Exception

findMinMaxUtility

protected void findMinMaxUtility()
                          throws java.lang.Exception
Find the minimum and maximum utilities of the bids in the utility space.

Throws:
java.lang.Exception

getWeight

public double getWeight(Issue issue)
Description copied from class: OpponentModel
Returns the weight of a particular issue in the domain.

Overrides:
getWeight in class OpponentModel
Parameters:
issue - from which the weight should be returned
Returns:
weight of the given issue

getExtremeEvaluation

public double getExtremeEvaluation(Evaluator evaluator,
                                   IAMhagglerBayesianModel.Extreme extreme)

getExpectedWeight

public double getExpectedWeight(int number)
Get the expected weight of a particular issue.

Parameters:
number - The issue number.
Returns:
the expected weight of a particular issue.

getBestHypothesis

public EvaluatorHypothesis getBestHypothesis(int issue)

getHypothesis

public Hypothesis getHypothesis(int index)

getOpponentUtilitySpace

public UtilitySpace getOpponentUtilitySpace()
Overrides:
getOpponentUtilitySpace in class OpponentModel
Returns:
the estimated utility space of the opponent

getName

public java.lang.String getName()
Overrides:
getName in class OpponentModel
Returns:
name of the opponent model.

cleanUp

public void cleanUp()
Description copied from class: OpponentModel
Removes references to the objects used by the opponent model.

Overrides:
cleanUp in class OpponentModel